package com.yc.cloud.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.cloud.common.orm.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 摄像头管理表
 * </p>
 *
 * @author kinggu
 * @since 2025-08-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hw_camera")
public class HwCamera extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 摄像头名称
     */
    @TableField("name")
    private String name;

    /**
     * 摄像头IP地址
     */
    @TableField("camera_ip")
    private String cameraIp;

    /**
     * 摄像头端口号
     */
    @TableField("camera_port")
    private Integer cameraPort;

    /**
     * 摄像头登录用户名
     */
    @TableField("camera_username")
    private String cameraUsername;

    /**
     * 摄像头登录密码(加密)
     */
    @TableField("camera_password")
    private String cameraPassword;

    /**
     * 安装位置
     */
    @TableField("location")
    private String location;

    /**
     * 在线状态：0-离线, 1-在线, 2-故障
     */
    @TableField("online_status")
    private Integer onlineStatus;


    /**
     * 品牌
     */
    @TableField("brand")
    private String brand;

    /**
     * 型号
     */
    @TableField("model")
    private String model;

    /**
     * 备注信息
     */
    @TableField("description")
    private String description;

    /**
     * 所属分组ID
     */
    @TableField("group_id")
    private Long groupId;

    /**
     * 所属区域ID
     */
    @TableField("region_id")
    private Long regionId;

    /**
     * 关联监视点ID
     */
    @TableField("monitoring_point_id")
    private Long monitoringPointId;

    /**
     * SIP用户名
     */
    @TableField("sip_username")
    private String sipUsername;

    /**
     * 视频编码通道
     */
    @TableField("video_channel")
    private String videoChannel;

    /**
     * 是否置顶
     */
    @TableField("is_pinned")
    private Boolean pinned;

    /**
     * 置顶时间
     */
    @TableField("pinned_time")
    private LocalDateTime pinnedTime;

    /**
     * WebRTC播放地址
     */
    @TableField("stream_url")
    private String streamUrl;

    /**
     * 逻辑删除标志
     */
    @TableField("is_deleted")
    private Byte isDeleted;

    public static final String Name = "name";
    public static final String CameraSn = "camera_sn";
    public static final String CameraIp = "camera_ip";
    public static final String CameraPort = "camera_port";
    public static final String CameraUsername = "camera_username";
    public static final String CameraPassword = "camera_password";
    public static final String Location = "location";
    public static final String OnlineStatus = "online_status";
    public static final String Brand = "brand";
    public static final String Model = "model";
    public static final String Description = "description";
    public static final String GroupId = "group_id";
    public static final String RegionId = "region_id";
    public static final String MonitoringPointId = "monitoring_point_id";
    public static final String SipUsername = "sip_username";
    public static final String VideoChannel = "video_channel";
    public static final String IsPinned = "is_pinned";
    public static final String PinnedTime = "pinned_time";
    public static final String StreamUrl = "stream_url";
    public static final String IsDeleted = "is_deleted";

} 